package com.xuecheng.freemarker.config;

import sun.java2d.pipe.SpanIterator;

import javax.naming.Name;
import javax.xml.stream.XMLOutputFactory;
import java.util.*;
import java.util.stream.Stream;

/**
 * @author: gongfy
 * @create: 2020/8/5 21:41
 * @Description:
 */
public class StreamTestDemo {
    public static void main(String[] args) {

        //第一支队伍
        ArrayList<String> one = new ArrayList<>();
        one.add("迪丽热巴");
        one.add("宋远桥");
        one.add("苏星河");
        one.add("石破天");
        one.add("石中玉");
        one.add("老子");
        one.add("庄子");
        one.add("洪七公");
        //第二支队伍
        ArrayList<String> two = new ArrayList<>();
        two.add("古力娜扎");
        two.add("张无忌");
        two.add("赵丽颖");
        two.add("张三丰");
        two.add("尼古拉斯赵四");
        two.add("张天爱");
        two.add("张二狗");

//        1. 第一个队伍只要名字为3个字的成员姓名；存储到一个新集合中。
        List<String> list1 = new ArrayList<>();
        for (String s : one) {
            if (s.length() == 3){
                list1.add(s);
            }
        }
//        2. 第一个队伍筛选之后只要前3个人；存储到一个新集合中。
        List<String> list2 = new ArrayList<>();
        for (int i = 0; i < list1.size(); i++) {
            if (i<=2){
                list2.add(list1.get(i));
            }
        }
//        3. 第二个队伍只要姓张的成员姓名；存储到一个新集合中。
        List<String> list3 = new ArrayList<>();
        for (String s : two) {
            if (s.startsWith("张")){
                list3.add(s);
            }
        }
//        4. 第二个队伍筛选之后不要前2个人；存储到一个新集合中。
        List<String> list4 = new ArrayList<>();
        for (int i = 0; i < list3.size(); i++) {
            if (i>1){
                list4.add(list3.get(i));
            }
        }
//        5. 将两个队伍合并为一个队伍；存储到一个新集合中。
        List<String> list5 = new ArrayList<>();
        list5.addAll(list4);
        list5.addAll(list2);
//        6. 根据姓名创建 Person 对象；存储到一个新集合中。

        List<PerSon> perSonList = new ArrayList<>();
        for (String name : list5) {
            perSonList.add(new PerSon(name));
        }

//        7. 打印整个队伍的Person对象信息。
        for (PerSon perSon : perSonList) {
            System.out.println(perSon);
        }
        //PerSon{name='张天爱'}
        //PerSon{name='张二狗'}
        //PerSon{name='宋远桥'}
        //PerSon{name='苏星河'}
        //PerSon{name='石破天'}
    }
}
